package com.wfh.ai.tool;

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import dev.langchain4j.agent.tool.P;
import dev.langchain4j.agent.tool.Tool;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * @Title: ImageTool
 * @Author wangfenghuan
 * @Package com.wfh.aigenerator.ai.tool
 * @Date 2025/8/19 20:57
 * @description: This class provides functionality for image searching using the Pexels API
 */
@Slf4j
@Component
public class ImageTool {

    @Value("${image.key}")
    private String key;

    @Tool("使用这个图片搜索工具搜索对应的图片")
    public String getImageUrl(@P("搜索图片关键词,使用英文搜索") String keyWord) {
        // 创建请求
        HttpRequest httpRequest = HttpUtil.createGet(String.format("https://api.pexels.com/v1/search?query=%s&per_page=1", keyWord));
        httpRequest.header("Authorization", key);

        // 发送请求并接收响应
        HttpResponse execute = httpRequest.execute();
        JSONObject jsonObject = JSONUtil.parseObj(execute.body());

        // 获取照片数组中的第一个元素
        JSONObject photoObject = jsonObject.getJSONArray("photos").getJSONObject(0);
        if (photoObject == null){
            return "没有找到相关的照片";
        }
        // 从'src'对象中获取原始链接
        JSONObject srcObject = photoObject.getJSONObject("src");

        return srcObject.getStr("original");
    }


}
